package reflect;

import java.util.Scanner;

/**
 * 使用反射方式实例化 - 类对象.newInstance()方式;
 */
public class Demo02Reflect {
    public static void main(String[] args) throws Exception {
        //需求:实例化一个Person对象;
        //方式1:使用new方式;
        Person p = new Person();
        System.out.println(p);

        //方式2:使用反射方式;
        /*
            1.reflect.Person
            2.reflect.Student
            3.java.lang.String
            4.java.util.ArrayList
            5.java.util.Date //当前时间
         */
        Scanner scanner = new Scanner(System.in);
        System.out.println("请输入类的完全限定名:");
        String className = scanner.nextLine();
        //获取类对象并实例化
        Class cls = Class.forName(className);
        /*
            cls.newInstance():使用是默认构造器[公开且无参的构造器]来实例化对象;
         */
        Object obj = cls.newInstance();
        System.out.println(obj);
    }
}
